/*
 * BinaryTreeModelEvent.java v0.10 16/06/08
 *
 * Visualgorithm
 * Copyright (C) Hannier, Pironin, Rigoni (visualgo@googlegroups.com)
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

package model.tree;

import java.util.EventObject;
import java.util.List;

/**
 * This class defines the binary tree model event. This event is used to
 * transmit the binary tree of the model to binary tree model listeners. In
 * order to do so, the binary tree of the model is transmit as a heap. It is not
 * designed for inheritance.
 * 
 * @author Julien Hannier
 * @version 0.10 16/06/08
 */
public final class BinaryTreeModelEvent extends EventObject {

    private static final long serialVersionUID = 1L;

    private List<IBinaryNode> heapCorrespondingToBinaryTree;

    /**
     * Builds a binary tree model event. This event has a parameter {@code heap}
     * that is the heap corresponding to the binary tree of the model.
     * 
     * @param source the source of the binary tree model event
     * @param heap the heap corresponding to the binary tree
     */
    public BinaryTreeModelEvent(Object source, List<IBinaryNode> heap) {
        super(source);
        heapCorrespondingToBinaryTree = heap;
    }

    /**
     * Returns the heap corresponding to the binary tree of the model.
     * 
     * @return the heap corresponding to the binary tree
     */
    public List<IBinaryNode> getHeapCorrespondingToBinaryTree() {
        return heapCorrespondingToBinaryTree;
    }
}
